home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / c64-preservation-project / apps / koalapad_programmers_toolkit_s1[koala_technologies_1984].nbz / menu (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  5.1 KB  |  148 lines

  1. 10 REM       MENU
  2. 11 :
  3. 12 REM DISPLAY GRAPHICS MENU AND MAKE CHOICE
  4. 13 :
  5. 40 CLR
  6. 42 GOSUB 21200:REM SET UP VARIABLE NAMES
  7. 43 POKE SN,0:POKE 49204,14:REM TURN OFF SPRITES
  8. 44 IFPEEK(34578)<>77 THEN POKE 34578,77:GOTO60:REM SKIP IF FIRST TIME RUN
  9. 46 :
  10. 50 REM LINES 52-56 COPY COLOR MEMORY INTO COLOR RAM
  11. 51 POKE 53265,PEEK(53265)AND239:REM SWITCH SCREEN TO BORDER COLOR
  12. 52 POKE 252,131:POKE 251,40:POKE 254,216:POKE 253,0
  13. 53 POKE 53280,13
  14. 54 POKE 49236,135:POKE49235,16:POKE 53281,0
  15. 55 :
  16. 56 SYS 49397:REM MOVES COLOR MEMORY FOR MENU PICTURE
  17. 57 :
  18. 58 REM LINES 60-63 DISPLAY THE MAIN MENU PICTURE LOCATED IN BANK 3
  19. 59 :
  20. 60 POKE BA,0:POKESA,48:POKE CA,8:POKE SS,204:POKECH,224
  21. 61 POKE 56578,PEEK(56578)OR3:POKE56576,(PEEK(56576)AND252)OR0
  22. 62 POKE53272,(PEEK(53272)AND15)OR48:POKE53272,(PEEK(53272)AND240)OR8
  23. 63 POKE 53265,PEEK(53265)OR32:POKE53270,PEEK(53270)OR16
  24. 64 :
  25. 65 I7=255:I8=1:REM FIX BIT MAP(LINES 65-70) ALTERED BY RESTORE
  26. 66 FORI9=64816 TO 64847
  27. 67 POKE I9,I7:I8=I8+1:IF I8=5 THENI7=0
  28. 68 IF I8=9 THEN I7=255:I8=1
  29. 69 IF I9=64839 THEN I7=240
  30. 70 NEXT I9
  31. 71 :
  32. 75 POKE53281,0
  33. 80 POKE 53265,PEEK(53265)OR16:REM TURN SCREEN BACK ON
  34. 100 REM************************************************************************
  35. 110 REM
  36. 120 REM             MAIN MENU PROGRAM
  37. 130 REM
  38. 140 REM  THIS PROGRAM DOES THE FOLLOWING;
  39. 150 REM       1) DISPLAYS MAIN MENU PICTURE
  40. 160 REM       2) PUTS SPRITE CURSOR ON SCREEN
  41. 170 REM       3) DIVIDES TABLET INTO FOUR AREAS
  42. 180 REM       4) SELECTS AND LOADS THE APPROPRIATE MENU SELECTION
  43. 190 REM
  44. 200 REM******CONTROL SECTION************
  45. 210 GOSUB 300:REM SETS UP CONSTANTS
  46. 220 GOSUB 400:REM MOVE SPRITE AROUND
  47. 230 GOSUB 500:REM DIVIDE UP TABLET
  48. 240 (null) TO 600:REM LOAD SELECTION
  49. 250 (null) TO 220
  50. 290 END
  51. 299 :
  52. 300 REM******SET UP CONSTANTS, VARIABLES,FLAGS*******
  53. 309 :
  54. 310 REM SEE "BASICS" PROGRAM FOR DETAILED EXPLANATION OF THE FOLLOWING
  55. 315 POKE S1,4: POKE S2,4: POKE M1,255: POKEM2,255: REM  NORMAL SPRITE RANGE
  56. 320 POKE LO,1:POKE LE,0:SYS SP
  57. 340 POKE SK,1:REM SET SPRITE COLOR
  58. 350 POKE XL,172:POKE XH,0:POKE YL,142:POKE SN,1:REM PUT SPRITE AT CENTER
  59. 360 SYS TA:IF((PEEK(RX)<9)AND(PEEK(RY)<9))THEN 360:REM CHECK IF PAD PRESSED
  60. 390 RETURN
  61. 399 :
  62. 400 REM******PUT UP SPRITE**************
  63. 410 POKE SF,0:REM RESET SPRITE SCALING
  64. 420 SYS SPRITE:REM CALL SPRITE ROUTINE
  65. 490 RETURN
  66. 499 :
  67. 500 REM******DIVIDE UP TABLET***********
  68. 510 POKE XS,1:POKE H1,0:REM SET X START=1
  69. 520 POKE YS,1:POKE H2,0:REM SET Y START=1
  70. 530 POKE XF,238:POKE H3,0:REM SET X FINNISH=228
  71. 540 POKE YF,200:POKE H4,0:REM SET Y FINNISH=200
  72. 550 SYS SCALE
  73. 560 NX=PEEK(XN):NY=PEEK(YN):REM NEW VALUES OF X,Y
  74. 590 RETURN
  75. 599 :
  76. 600 REM********SELECTS AND LOADS CHOICE*******
  77. 610 IF(PEEK(LP) OR  PEEK(RP))=0 THEN GOTO 220:REM RETURN IF NOT PRESSED
  78. 611 :
  79. 612 IF((NX>19)AND(NX<105)) THEN NX=1:REM SET DETECTION AREA
  80. 613 IF((NX>133)AND(NX<221)) THEN NX=2
  81. 614 IF((NX<>1)AND(NX<>2)) THEN 220
  82. 615 IF((NY>16)AND(NY<88)) THEN NY=1
  83. 616 IF((NY>120)AND(NY<189)) THEN NY=2
  84. 617 IF((NY<>1)AND(NY<>2)) THEN 220
  85. 618 :
  86. 620 CV=NX+(NY-1)*2:REM CV=1,2,3,4
  87. 630 IF CV<1 THEN CV=1:REM CHECK LIMIT
  88. 640 IF CV>4 THEN CV=4:REM CHECK LIMIT
  89. 641 POKE SN,0:POKET3,0:POKET3+1,0
  90. 642 OPEN 2,8,2,"0:SPRITE.UPARROW,S,R"
  91. 643 CLOSE2:OPEN 15,8,15:INPUT#15,A$,B$,C$,D$
  92. 644 IFVAL(A$)=0THEN650
  93. 645 POKE BA,3:POKESA,16:POKECA,4
  94. 646 SYSTR:PRINT"[147]":PRINT:PRINT:PRINT:PRINT:PRINTCHR$(158):PRINT"          ";B$
  95. 647 FORI=1TO 1000:NEXTI
  96. 648 GOTO10
  97. 649 :
  98. 650 ON CV GOTO 660,700,680,720
  99. 651 :
  100. 655 REM POKES 45 THROUGH 50 SET THE END OF BASIC PROGRAM TO BE LOADED
  101. 656 :
  102. 660 POKE 45,0:POKE 46,101:REM SET BASIC POINTERS
  103. 662 POKE 47,0:POKE 48,101:POKE 49,0:POKE 50,101
  104. 670 CLR:LOAD"BASICS",8:REM LOAD PROGRAM
  105. 675 :
  106. 680 POKE 45,0:POKE 46,37
  107. 682 POKE 47,0:POKE 48,37:POKE 49,0:POKE 50,37
  108. 690 CLR:LOAD"GRAPHICS",8
  109. 695 :
  110. 700 POKE 45,0:POKE 46,46
  111. 702 POKE 47,0:POKE 48,46:POKE 49,0:POKE 50,46
  112. 710 CLR:LOAD"CURSORS",8
  113. 715 :
  114. 720 POKE 45,0:POKE 46,78
  115. 722 POKE 47,0:POKE 48,78:POKE 49,0:POKE 50,78
  116. 730 CLR:LOAD"EXAMPLES",8
  117. 740 END
  118. 750 :
  119. 760 :
  120. 21100 REM THE FOLLOWING BLOCK IS THE STANDARD DEFINITIONS USED IN ALL MODULES;
  121. 21120 REM ONLY A FEW  OF THESE ARE ACTUALLY REQUIRED IN THIS MENU PROGRAM.
  122. 21199 :
  123. 21200 REM ************SET UPS************
  124. 21202 Z5=45:Z6=46:Z7=47:Z8=48:Z9=49:Z0=50:REM ZERO PAGE BASIC POINTERS
  125. 21204 CBRDER=53280:CSCREEN=53281
  126. 21205 REM ASSEMBLY ROUTINE JUMP ADDRESS NAMES
  127. 21206 TA=49328
  128. 21208 PERFECT=49337
  129. 21210 SMOOTH=49340:SCALE=49346:TEXTCR=49349:SPRITE=49352
  130. 21215 PLTDOT=49355:SETSCL=49358:TURNUN=49361:KLRCOL=49364:TRNUFF=49367
  131. 21220 LINE=49382:BOX=49385:RDIUS=49388:CIRCLE=49391
  132. 21222 KOALAPICTURE=49394
  133. 21224 :
  134. 21225 REM VARIABLE NAMES
  135. 21227 RX=49152:RY=49154
  136. 21230 B1=49156:B2=49157:LPRESS=49161:RPRESS=49162
  137. 21235 SX=49196:SY=49197:LEVEL=49198:LOCKST=49199
  138. 21240 XS=49177:YS=49179:XF=49181:YF=49183:XNW=49185:YNW=49189
  139. 21245 H1=49178:H2=49180:H3=49182:H4=49184
  140. 21246 S1=49187:S2=S1+1:M1=49175:M2=M1+1:REM  SPRITE RANGE
  141. 21250 BANKA=49191:SSTART=49194:SA=49192:CA=49193
  142. 21255 SFLAG=49200:SNABLE=53269:SKOLR=53287:XLOSP=53248:XHISP=53264:YLOSP=53249
  143. 21260 MCM=49205:COLR=49206:XR=49208
  144. 21265 X1=49209:X2=49210:Y1=49211:Y2=49212:RADIUS=49213:T3=49239
  145. 21270 RETURN
  146. 21890 :
  147. 30000 OPEN15,8,15:PRINT#15,"S0:MENU":SAVE"MENU",8
  148.